/*
 * Copyright 2010 Google Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
 * in compliance with the License. You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under the License
 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
 * or implied. See the License for the specific language governing permissions and limitations under
 * the License.
 */
/*
 * Warning! This file is generated. Modify at your own risk.
 */

package com.google.api.services.calendar.model;

import com.google.api.client.json.GenericJson;

/**
 * Model definition for Calendar.
 *
 * <p> This is the Java data model class that specifies how to parse/serialize into the JSON that is
 * transmitted over HTTP when working with the Calendar API. For a detailed explanation see:
 * <a href="http://code.google.com/p/google-api-java-client/wiki/Json">http://code.google.com/p/google-api-java-client/wiki/Json</a>
 * </p>
 *
 * <p>
 * Upgrade warning: starting with version 1.12 {@code getResponseHeaders()} is removed, instead use
 * {@link com.google.api.client.http.json.JsonHttpRequest#getLastResponseHeaders()}
 * </p>
 *
 * @author Google, Inc.
 */
@SuppressWarnings("javadoc")
public final class Calendar extends GenericJson {

  /**
   * Type of the resource ("calendar#calendar").
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private String kind;

  /**
   * Description of the calendar. Optional.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private String description;

  /**
   * Title of the calendar.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private String summary;

  /**
   * ETag of the resource.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private String etag;

  /**
   * Geographic location of the calendar as free-form text. Optional.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private String location;

  /**
   * The time zone of the calendar. Optional.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private String timeZone;

  /**
   * Identifier of the calendar.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private String id;

  /**
   * Type of the resource ("calendar#calendar").
   * The value returned may be {@code null}.
   */
  public String getKind() {
    return kind;
  }

  /**
   * Type of the resource ("calendar#calendar").
   * The value set may be {@code null}.
   */
  public Calendar setKind(String kind) {
    this.kind = kind;
    return this;
  }

  /**
   * Description of the calendar. Optional.
   * The value returned may be {@code null}.
   */
  public String getDescription() {
    return description;
  }

  /**
   * Description of the calendar. Optional.
   * The value set may be {@code null}.
   */
  public Calendar setDescription(String description) {
    this.description = description;
    return this;
  }

  /**
   * Title of the calendar.
   * The value returned may be {@code null}.
   */
  public String getSummary() {
    return summary;
  }

  /**
   * Title of the calendar.
   * The value set may be {@code null}.
   */
  public Calendar setSummary(String summary) {
    this.summary = summary;
    return this;
  }

  /**
   * ETag of the resource.
   * The value returned may be {@code null}.
   */
  public String getEtag() {
    return etag;
  }

  /**
   * ETag of the resource.
   * The value set may be {@code null}.
   */
  public Calendar setEtag(String etag) {
    this.etag = etag;
    return this;
  }

  /**
   * Geographic location of the calendar as free-form text. Optional.
   * The value returned may be {@code null}.
   */
  public String getLocation() {
    return location;
  }

  /**
   * Geographic location of the calendar as free-form text. Optional.
   * The value set may be {@code null}.
   */
  public Calendar setLocation(String location) {
    this.location = location;
    return this;
  }

  /**
   * The time zone of the calendar. Optional.
   * The value returned may be {@code null}.
   */
  public String getTimeZone() {
    return timeZone;
  }

  /**
   * The time zone of the calendar. Optional.
   * The value set may be {@code null}.
   */
  public Calendar setTimeZone(String timeZone) {
    this.timeZone = timeZone;
    return this;
  }

  /**
   * Identifier of the calendar.
   * The value returned may be {@code null}.
   */
  public String getId() {
    return id;
  }

  /**
   * Identifier of the calendar.
   * The value set may be {@code null}.
   */
  public Calendar setId(String id) {
    this.id = id;
    return this;
  }

}
